package dto

type VerificationState int

const (
	VerificationStateInit VerificationState = iota + 1
	VerificationStateACQUIRED
	VerificationStatePROCESSED
	VerificationStateSESSIONEXPIRED
	VerificationStateTOKENEXPIRED
)

type WorkflowDefinitionKeys int

const (
	IDCaptureAndStorage       WorkflowDefinitionKeys = iota + 1 // Captures a government-issued ID document and stores the extracted data.
	IDVerification                                              // Verifies a government-issued ID document and returns a) whether that document is valid, and b) data extracted from that document.
	IDAndIdentityVerification                                   // Verifies a photo ID document and returns a) whether that document is valid, and b) data extracted from that document. It also compares the user's face with the photo on the ID and performs a liveness check to ensure the person is physically present.
	_
	SimilarityToExistingID
	StandaloneLiveness
	_
	_
	Authentication
	AuthenticationOnPremise                           = 16
	SimilarityOfTwoImages                             = 20
	IDVerificationAndIdentityVerificationAndScreening = 32
)

type JUMIOType int

const (
	JUMIOTypeDefault JUMIOType = iota
	JUMIOWorkflow
	JUMIODocument
)

type JUMIODocumentType string

const (
	JUMIODocumentTypeUNSupported JUMIODocumentType = "UNSUPPORTED"
	JUMIODocumentTypePassport    JUMIODocumentType = "PASSPORT"
	JUMIODocumentTypeDriver      JUMIODocumentType = "DRIVING_LICENSE"
	JUMIODocumentTypeID          JUMIODocumentType = "ID_CARD"
	JUMIODocumentTypeVISA        JUMIODocumentType = "VISA"
	JUMIODocumentTypeCC          JUMIODocumentType = "CC"
	JUMIODocumentTypeBS          JUMIODocumentType = "BS"
	JUMIODocumentTypeIC          JUMIODocumentType = "IC"
	JUMIODocumentTypeUB          JUMIODocumentType = "UB"
	JUMIODocumentTypeCAAP        JUMIODocumentType = "CAAP"
	JUMIODocumentTypeCRC         JUMIODocumentType = "CRC"
	JUMIODocumentTypeCCS         JUMIODocumentType = "CCS"
	JUMIODocumentTypeLAG         JUMIODocumentType = "LAG"
	JUMIODocumentTypeLOAP        JUMIODocumentType = "LOAP"
	JUMIODocumentTypeMOAP        JUMIODocumentType = "MOAP"
	JUMIODocumentTypeTR          JUMIODocumentType = "TR"
	JUMIODocumentTypeVT          JUMIODocumentType = "VT"
	JUMIODocumentTypeVC          JUMIODocumentType = "VC"
	JUMIODocumentTypeSTUC        JUMIODocumentType = "STUC"
	JUMIODocumentTypeHCC         JUMIODocumentType = "HCC"
	JUMIODocumentTypeCB          JUMIODocumentType = "CB"
	JUMIODocumentTypeSENC        JUMIODocumentType = "SENC"
	JUMIODocumentTypeMEDC        JUMIODocumentType = "MEDC"
	JUMIODocumentTypeBC          JUMIODocumentType = "BC"
	JUMIODocumentTypeWWCC        JUMIODocumentType = "WWCC"
	JUMIODocumentTypeSS          JUMIODocumentType = "SS"
	JUMIODocumentTypeTAC         JUMIODocumentType = "TAC"
	JUMIODocumentTypeSEL         JUMIODocumentType = "SEL"
	JUMIODocumentTypePB          JUMIODocumentType = "PB"
	JUMIODocumentTypeSSC         JUMIODocumentType = "SSC"
	JUMIODocumentTypeCUSTOM      JUMIODocumentType = "CUSTOM"
	JUMIODocumentTypeOTHER       JUMIODocumentType = "OTHER"
)

func (l JUMIODocumentType) String() string {
	switch l {
	case JUMIODocumentTypeUNSupported:
		return "UNSUPPORTED"
	case JUMIODocumentTypePassport:
		return "PASSPORT"
	case JUMIODocumentTypeDriver:
		return "DRIVING_LICENSE"
	case JUMIODocumentTypeID:
		return "ID_CARD"
	case JUMIODocumentTypeVISA:
		return "VISA"
	case JUMIODocumentTypeCC:
		return "CC"
	case JUMIODocumentTypeBS:
		return "BS"
	case JUMIODocumentTypeIC:
		return "IC"
	case JUMIODocumentTypeUB:
		return "UB"
	case JUMIODocumentTypeCAAP:
		return "CAAP"
	case JUMIODocumentTypeCRC:
		return "CRC"
	case JUMIODocumentTypeCCS:
		return "CCS"
	case JUMIODocumentTypeLAG:
		return "LAG"
	case JUMIODocumentTypeLOAP:
		return "LOAP"
	case JUMIODocumentTypeMOAP:
		return "MOAP"
	case JUMIODocumentTypeTR:
		return "TR"
	case JUMIODocumentTypeVT:
		return "VT"
	case JUMIODocumentTypeVC:
		return "VC"
	case JUMIODocumentTypeSTUC:
		return "STUC"
	case JUMIODocumentTypeHCC:
		return "HCC"
	case JUMIODocumentTypeCB:
		return "CB"
	case JUMIODocumentTypeSENC:
		return "SENC"
	case JUMIODocumentTypeMEDC:
		return "MEDC"
	case JUMIODocumentTypeBC:
		return "BC"
	case JUMIODocumentTypeWWCC:
		return "WWCC"
	case JUMIODocumentTypeSS:
		return "SS"
	case JUMIODocumentTypeTAC:
		return "TAC"
	case JUMIODocumentTypeSEL:
		return "SEL"
	case JUMIODocumentTypePB:
		return "PB"
	case JUMIODocumentTypeSSC:
		return "SSC"
	case JUMIODocumentTypeCUSTOM:
		return "CUSTOMType"
	case JUMIODocumentTypeOTHER:
		return "OTHER"
	default:
		return "UNSUPPORTED"
	}
}
